package com.proyecto.core.vista.echo.base;

import java.util.ArrayList;
import java.util.ResourceBundle;

import nextapp.echo2.app.ApplicationInstance;
import nextapp.echo2.app.Button;
import nextapp.echo2.app.Column;
import nextapp.echo2.app.ResourceImageReference;
import nextapp.echo2.app.Row;

import nextapp.echo2.app.Alignment;

import com.proyecto.core.vista.echo.constantes.AccionVentana;
import com.proyecto.core.vista.echo.base.BotonInfoSistema;

@SuppressWarnings("serial")
public class RowBotoneraTransaccion extends Row {

	private ResourceBundle resourceBundle;

	private Button btnIncluir;

	private Button btnModificar;

	private Button btnEliminar;

	private Button btnConsultar;

	private Button btnAceptar;

	private Button btnCancelar;

	private BotonInfoSistema btnInfoSistema;
	
	private Button btnSalir;

	ArrayList<Integer> AIMECTListBotones = new ArrayList<Integer>();
	

	/**
	 * Creates a new <code>RowBotoneraTransaccion</code>.
	 */
	public RowBotoneraTransaccion() {
		super();

		// Add design-time configured components.
		initComponents();

		btnIncluir  .setActionCommand(String.valueOf(AccionVentana.MODO_INCLUIR));
		btnModificar.setActionCommand(String.valueOf(AccionVentana.MODO_MODIFICAR));
		btnEliminar .setActionCommand(String.valueOf(AccionVentana.MODO_ELIMINAR));
		btnConsultar.setActionCommand(String.valueOf(AccionVentana.MODO_CONSULTAR));
		btnAceptar  .setActionCommand(String.valueOf(AccionVentana.MODO_ACEPTAR));
		btnCancelar .setActionCommand(String.valueOf(AccionVentana.MODO_CANCELAR));
		btnSalir    .setActionCommand(String.valueOf(AccionVentana.MODO_SALIR));
		btnInfoSistema.setActionCommand(String.valueOf(AccionVentana.MODO_INFO));
		
	}

	/* coloca l array list**/
	
	// public void configurarBotones(int pAccion, ArrayList listDeEnteros.. 0 Apagado 1 Prendio)
	public void configurarBotones(int pAccion, ArrayList<Integer> permisosSeg) {
		switch (pAccion) {
		case AccionVentana.MODO_INCLUIR:
			
			btnIncluir  .setEnabled(false);
			btnModificar.setEnabled(false);
			btnEliminar .setEnabled(false);
			btnConsultar.setEnabled(false);
			btnAceptar  .setEnabled(true);
			btnCancelar .setEnabled(true);
			break;
		case AccionVentana.MODO_MODIFICAR:
			btnIncluir  .setEnabled(true);
			btnModificar.setEnabled(false);
			btnEliminar .setEnabled(true);
			btnConsultar.setEnabled(true);
			btnAceptar  .setEnabled(true);
			btnCancelar .setEnabled(true);
			break;
		case AccionVentana.MODO_MOSTRAR:
			btnIncluir  .setEnabled(true);
			btnModificar.setEnabled(true);
			btnEliminar .setEnabled(true);
			btnConsultar.setEnabled(true);
			btnAceptar  .setEnabled(false);
			btnCancelar .setEnabled(false);
			break;
		case AccionVentana.MODO_CONSULTAR:
			btnIncluir  .setEnabled(true);
			btnModificar.setEnabled(false);
			btnEliminar .setEnabled(false);
			btnConsultar.setEnabled(true);
			btnAceptar  .setEnabled(false);
			btnCancelar .setEnabled(false);
			break;
		case AccionVentana.MODO_CANCELAR:
			btnIncluir  .setEnabled(true);
			btnModificar.setEnabled(false);
			btnEliminar .setEnabled(false);
			btnConsultar.setEnabled(true);
			btnAceptar  .setEnabled(false);
			btnCancelar .setEnabled(false);
			break;
		case AccionVentana.MODO_SALIR:
			btnIncluir  .setEnabled(false);
			btnModificar.setEnabled(false);
			btnEliminar .setEnabled(false);
			btnConsultar.setEnabled(false);
			btnAceptar  .setEnabled(false);
			btnCancelar .setEnabled(false);
			break;
		default:
			break;
		}
		
		AIMECTListBotones = permisosSeg;
		
		if(permisosSeg.size()>0){
			btnIncluir  .setEnabled(btnIncluir  .isEnabled() && permisosSeg.get(1).intValue()==1);
			btnModificar.setEnabled(btnModificar.isEnabled() && permisosSeg.get(2).intValue()==1);
			btnEliminar .setEnabled(btnEliminar .isEnabled() && permisosSeg.get(3).intValue()==1);
			btnConsultar.setEnabled(btnConsultar.isEnabled() && permisosSeg.get(4).intValue()==1);
		}
		
		// luego de que pase por el switch entoncentes apagar y prender segun la seguridad....
		
	}
	
	public Button[] ObtenerBotones() {
		Button[] ArregloBotones = new Button[8];
		ArregloBotones[0] = btnIncluir;
		ArregloBotones[1] = btnModificar;
		ArregloBotones[2] = btnEliminar;
		ArregloBotones[3] = btnConsultar;
		ArregloBotones[4] = getBtnAceptar();
		ArregloBotones[5] = getBtnCancelar();
		ArregloBotones[6] = getBtnSalir();
		ArregloBotones[7] = getBtnInfoSistema();
		return ArregloBotones;
	}

	public void habilitaIncluir(boolean habilitado) {
		btnIncluir.setEnabled(habilitado);
		if (AIMECTListBotones.size() > 0){
			btnIncluir.setEnabled(habilitado && AIMECTListBotones.get(1).intValue()==1);
		}
	}
	
	public void habilitaModificar(boolean habilitado) {
		btnModificar.setEnabled(habilitado);
		if (AIMECTListBotones.size() > 0){
			btnModificar.setEnabled(habilitado && AIMECTListBotones.get(2).intValue()==1);
		}
	}
	
	public void habilitaEliminar(boolean habilitado) {
		btnEliminar.setEnabled(habilitado);
		if (AIMECTListBotones.size() > 0){
			btnEliminar.setEnabled(habilitado && AIMECTListBotones.get(3).intValue()==1);
		}
	}
	
	public void habilitaConsultar(boolean habilitado) {
	btnConsultar.setEnabled(habilitado);
		if (AIMECTListBotones.size() > 0){
			btnConsultar.setEnabled(habilitado && AIMECTListBotones.get(4).intValue()==1);
		}
	}

	public Button getBtnAceptar() {
		return btnAceptar;
	}

	public Button getBtnCancelar() {
		return btnCancelar;
	}

	public BotonInfoSistema getBtnInfoSistema() {
		return btnInfoSistema;
	}
	
	public Button getBtnSalir() {
		return btnSalir;
	}

	public ArrayList<Integer> getAIMECTListBotones() {
		return AIMECTListBotones;
	}

	public void setAIMECTListBotones(ArrayList<Integer> listBotones) {
		AIMECTListBotones = listBotones;
	}

	public Button getBtnIncluir() {
		return btnIncluir;
	}

	public void setBtnIncluir(Button btnIncluir) {
		this.btnIncluir = btnIncluir;
	}

	public Button getBtnModificar() {
		return btnModificar;
	}

	public void setBtnModificar(Button btnModificar) {
		this.btnModificar = btnModificar;
	}

	public Button getBtnEliminar() {
		return btnEliminar;
	}

	public void setBtnEliminar(Button btnEliminar) {
		this.btnEliminar = btnEliminar;
	}

	public Button getBtnConsultar() {
		return btnConsultar;
	}

	public void setBtnConsultar(Button btnConsultar) {
		this.btnConsultar = btnConsultar;
	}

	public void setBtnAceptar(Button btnAceptar) {
		this.btnAceptar = btnAceptar;
	}

	public void setBtnCancelar(Button btnCancelar) {
		this.btnCancelar = btnCancelar;
	}

	/**
	 * Configures initial state of component.
	 * WARNING: AUTO-GENERATED METHOD.
	 * Contents will be overwritten.
	 */
	private void initComponents() {
		resourceBundle = ResourceBundle.getBundle(
				"com.proyecto.core.vista.echo.resource.localization.etiquetas",
				ApplicationInstance.getActive().getLocale());
		this.setAlignment(new Alignment(Alignment.LEFT, Alignment.TOP));
		this.setStyleName("2OpenLabs.Row.Botonera");
		btnIncluir = new Button();
		btnIncluir.setText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Incluir"));
		ResourceImageReference imageReference1 = new ResourceImageReference(
				"/com/proyecto/core/vista/echo/resource/image/icon/general/Iconos/page.png");
		btnIncluir.setIcon(imageReference1);
		btnIncluir.setToolTipText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Incluir"));
		btnIncluir.setStyleName("2OpenLabs.Button.Transaccion");
		add(btnIncluir);
		btnModificar = new Button();
		btnModificar.setText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Modificar"));
		ResourceImageReference imageReference2 = new ResourceImageReference(
				"/com/proyecto/core/vista/echo/resource/image/icon/general/Iconos/page_edit.png");
		btnModificar.setIcon(imageReference2);
		btnModificar.setToolTipText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Modificar"));
		btnModificar.setStyleName("2OpenLabs.Button.Transaccion");
		add(btnModificar);
		btnEliminar = new Button();
		btnEliminar.setText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Eliminar"));
		ResourceImageReference imageReference3 = new ResourceImageReference(
				"/com/proyecto/core/vista/echo/resource/image/icon/general/Iconos/delete.png");
		btnEliminar.setIcon(imageReference3);
		btnEliminar.setToolTipText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Eliminar"));
		btnEliminar.setStyleName("2OpenLabs.Button.Transaccion");
		add(btnEliminar);
		btnConsultar = new Button();
		btnConsultar.setText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Consultar"));
		ResourceImageReference imageReference4 = new ResourceImageReference(
				"/com/proyecto/core/vista/echo/resource/image/icon/general/Iconos/magnifier.png");
		btnConsultar.setIcon(imageReference4);
		btnConsultar.setToolTipText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Consultar"));
		btnConsultar.setStyleName("2OpenLabs.Button.Transaccion");
		add(btnConsultar);
		Column column1 = new Column();
		column1.setStyleName("2OpenLabs.Column.LineaVertical");
		add(column1);
		btnAceptar = new Button();
		btnAceptar.setText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Aceptar"));
		ResourceImageReference imageReference5 = new ResourceImageReference(
				"/com/proyecto/core/vista/echo/resource/image/icon/general/Iconos/accept.png");
		btnAceptar.setIcon(imageReference5);
		btnAceptar.setToolTipText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Aceptar"));
		btnAceptar.setStyleName("2OpenLabs.Button.Transaccion");
		add(btnAceptar);
		btnCancelar = new Button();
		btnCancelar.setText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Cancelar"));
		ResourceImageReference imageReference6 = new ResourceImageReference(
				"/com/proyecto/core/vista/echo/resource/image/icon/general/Iconos/cancel.png");
		btnCancelar.setIcon(imageReference6);
		btnCancelar.setToolTipText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Cancelar"));
		btnCancelar.setStyleName("2OpenLabs.Button.Transaccion");
		add(btnCancelar);
		Column column2 = new Column();
		column2.setStyleName("2OpenLabs.Column.LineaVertical");
		add(column2);
		btnSalir = new Button();
		btnSalir.setText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Salir"));
		ResourceImageReference imageReference7 = new ResourceImageReference(
				"/com/proyecto/core/vista/echo/resource/image/icon/general/Iconos/door_out.png");
		btnSalir.setIcon(imageReference7);
		btnSalir.setToolTipText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Salir"));
		btnSalir.setStyleName("2OpenLabs.Button.Transaccion");
		add(btnSalir);
		btnInfoSistema = new BotonInfoSistema();
		ResourceImageReference imageReference8 = new ResourceImageReference(
				"/com/proyecto/core/vista/echo/resource/image/icon/general/Iconos/information.png");
		btnInfoSistema.setIcon(imageReference8);
		btnInfoSistema.setStyleName("2OpenLabs.Button.Transaccion");
		add(btnInfoSistema);
	}
}
